﻿'''
题目描述
给出数字K,请输出所有结果小于K的整数组合到一起的最少交换次数。
组合一起是指满足条件的数字相邻，不要求相邻后在数组中的位置。
数据范围：
100 <= K <= 100
100 <= 数组中数值 <= 100
输入描述
第一行输入数组：1 3 1 4 0
第二行输入K数值：2
输出描述
第一行输出最少交换次数：1
示例1
输入
1 3 1 4 0
2
输出
1
说明
小于2的表达式是1 1 0, 共三种可能将所有符合要求数字组合一起，最少交换1次。
解题思路
例子
1 3 1 4 0
2
找到小于 2 的元素：在给定数组 [1, 3, 1, 4, 0] 中，小于 2 的元素是 1, 1, 和 0。所以我们需要将这三个元素组合在一起。
组合方式：要将这三个元素组合在一起，可以有多种方式。由于题目没有要求元素必须按照原来的顺序排列，所以我们只关心这些元素
最终相邻排列的情况。
最少交换次数：
原数组是 [1, 3, 1, 4, 0]。
将 1, 1, 0 组合在一起，最少的交换次数为 1：
例如，可以通过一次交换操作，将位置 4 的 0 与位置 2 的 3 交换，得到数组 [1, 0, 1, 4, 3]，使得 1, 1, 0 相邻。
所以，这句话的重点在于，通过最少的交换次数，将三个小于 2 的元素组合在一起（相邻），而这个最少次数在这个例子中是 1。
思路：
标记小于 ( K ) 的元素：首先遍历数组，找出所有小于 ( K ) 的元素，标记它们的位置。
计算最少交换次数：
想象一个窗口，这个窗口长度等于标记元素的数量，窗口可以在数组中滑动。
对于窗口中每个可能的位置，计算窗口内已经包含的目标元素数量（即窗口内小于 ( K ) 的元素数量）。
窗口中包含最多目标元素的位置意味着需要的交换次数最少。交换次数等于窗口大小减去窗口内目标元素的数量。
给定数组为 [1, 3, 1, 4, 0]，( K ) 值为 2。小于 2 的元素是 1, 1, 0。
这些元素的索引是 [0, 2, 4]。
可以把这些元素想象为需要放在一个长度为 3 的窗口中。
滑动这个窗口，尝试找到包含最多目标元素的窗口。例如，如果窗口覆盖 1, 3, 1，那么窗口已经包含两个目标元素，还需要一个交换
将 0 换入窗口。
找到一个位置，比如 [1, 1, 0]，只需要交换一次就可以将所有小于 2 的元素组合在一起。
所以，最少交换次数是 1。
'''
#输入描述：
#第一行输入数组：1 3 1 4 0
#第二行输入K数值：2
#输出描述
#第一行输出最少交换次数：1

#读取输入
arr = list(map(int,input().split()))
k = int(input())

#遍历数组，标记小于k的数的索引和数量
index_list = []
count = 0
for i in range(len(arr)):
    if arr[i] < k:
        index_list.append(i)
        count += 1
#考虑特殊情况1或等于arr长度，无需交换，当然后面也包含这两种种情况
if count == 1 or count == len(arr):
    print(0)
    exit()

#使用滑窗统计包含满足条件数的最大值
max_count = 0
for i in range(len(arr) - count + 1):
    current_count = 0
    for j in range(i,i + count):
        if j in index_list:
            current_count += 1
    max_count = max(max_count,current_count)
#输出结果，注意总数-最大窗口包含数量
print(count - max_count)

